home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / Shape.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  4.1 KB  |  194 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:Shape.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Classes defined in this interface
  13.  * 
  14.  */
  15.  
  16.  
  17. #ifndef SOM_ODShape_xh
  18. #define SOM_ODShape_xh
  19.  
  20. class ODShape;
  21.  
  22. #define ODShape_MajorVersion 1
  23. #define ODShape_MinorVersion 0
  24.  
  25. /* C++ som defs */
  26. #include <somcls.xh>
  27.  
  28. /* Include C++ parent defs */
  29. #ifndef SOM_ODBaseShape_xh
  30. #include <ShapeB.xh>
  31. #endif
  32.  
  33. #ifndef ODShape_API
  34. #define ODShape_API
  35. /*
  36.  * -- The Class API
  37.  */
  38.  
  39. /*
  40.  * Start of user-defined types:
  41.  */
  42. class ODExtension;
  43. class ODStorageUnit;
  44. class ODTransform;
  45.  
  46. /*
  47.  * End of user-defined types.
  48.  */
  49.  
  50. #if applec ^ PRAGMA_LIB_EXPORT
  51. #pragma lib_export on
  52. #endif
  53.  
  54.  
  55. /* A procedure to create the ODShape Class */
  56. SOMEXTERN SOMClass * SOMLINK ODShapeNewClass(
  57.         integer4 majorVersion,
  58.         integer4 minorVersion);
  59.  
  60. /* The API to the ODShape class object, and the methods it introduces. */
  61. typedef struct ODShapeClassDataStructure {
  62.     SOMClass *classObject;
  63.     somMToken InitShape;
  64.     somMToken GetQDRegion;
  65.     somMToken SetQDRegion;
  66.     somMToken GetGXShape;
  67.     somMToken SetGXShape;
  68.     somMToken CopyQDRegion;
  69.     somMToken reserved1;
  70. } ODShapeClassDataStructure;
  71. #ifdef SOM_NO_DATA_EXPORTS
  72.    SOMEXTERN ODShapeClassDataStructure * ODShapeGetClassData ( void );
  73. #   undef ODShapeClassData
  74. #   define ODShapeClassData (*ODShapeGetClassData())
  75. #else
  76.    SOMEXTERN ODShapeClassDataStructure ODShapeClassData;
  77. #endif /* SOM_NO_DATA_EXPORTS */
  78.  
  79. #if applec ^ PRAGMA_LIB_EXPORT
  80. #pragma lib_export off
  81. #endif
  82.  
  83. #define _ODShape ODShapeClassData.classObject
  84.  
  85. /* The API to parentMtabs for ODShape, and the instance data it introduces. */
  86. SOMEXTERN struct ODShapeCClassDataStructure {
  87.     somMethodTabs parentMtab;
  88.     somDToken instanceDataToken;
  89. } ODShapeCClassData;
  90.  
  91. /*
  92.  * -- Typedefs for Procedures that support Methods introduced by ODShape
  93.  */
  94. SOMEXTERN {
  95. typedef void   (* SOMLINK somTD_ODShape_InitShape)(ODShape *somSelf, Environment *ev);
  96. typedef ODRgnHandle   (* SOMLINK somTD_ODShape_GetQDRegion)(ODShape *somSelf, Environment *ev);
  97. typedef void   (* SOMLINK somTD_ODShape_SetQDRegion)(ODShape *somSelf, Environment *ev,
  98.         ODRgnHandle rgn);
  99. typedef ODgxShape   (* SOMLINK somTD_ODShape_GetGXShape)(ODShape *somSelf, Environment *ev);
  100. typedef void   (* SOMLINK somTD_ODShape_SetGXShape)(ODShape *somSelf, Environment *ev,
  101.         ODgxShape s);
  102. typedef ODRgnHandle   (* SOMLINK somTD_ODShape_CopyQDRegion)(ODShape *somSelf, Environment *ev);
  103. }
  104.  
  105. #endif /* ODShape_API */
  106.  
  107.  
  108. /*
  109.  * -- Method Tokens are Thunks
  110.  */
  111. #undef somresolve_
  112. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  113.  
  114. /*
  115.  * -- The C++ Wrapper Class for ODShape
  116.  */
  117. class ODShape : public ODBaseShape
  118. {
  119. public:
  120.  
  121. void *operator new(size_t size)
  122. {
  123.    SOM_IgnoreWarning(size);
  124.    if (!ODShapeClassData.classObject) 
  125.       ODShapeNewClass(ODShape_MajorVersion,ODShape_MinorVersion);
  126.    return (void *)
  127.       ((somTD_SOMClass_somNew)
  128.       somresolve_((SOMObject *)((void*)(ODShapeClassData.classObject)),
  129.                  SOMClassClassData.somNew))
  130.          ((SOMClass *)((void*)(ODShapeClassData.classObject)));
  131. }
  132.  
  133. void operator delete(void * obj)
  134. {
  135.    ((SOMObject *)obj)->somFree();
  136. }
  137.  
  138. /* public method: InitShape */
  139. void   InitShape(Environment *ev)
  140. {
  141.    SOM_Resolve(this,ODShape,InitShape)
  142.     (this,ev);
  143. }
  144.  
  145.  
  146. /* public method: GetQDRegion */
  147. ODRgnHandle   GetQDRegion(Environment *ev)
  148. {
  149.    return SOM_Resolve(this,ODShape,GetQDRegion)
  150.     (this,ev);
  151. }
  152.  
  153.  
  154. /* public method: SetQDRegion */
  155. void   SetQDRegion(Environment *ev,
  156.         ODRgnHandle rgn)
  157. {
  158.    SOM_Resolve(this,ODShape,SetQDRegion)
  159.     (this,ev,rgn);
  160. }
  161.  
  162.  
  163. /* public method: GetGXShape */
  164. ODgxShape   GetGXShape(Environment *ev)
  165. {
  166.    return SOM_Resolve(this,ODShape,GetGXShape)
  167.     (this,ev);
  168. }
  169.  
  170.  
  171. /* public method: SetGXShape */
  172. void   SetGXShape(Environment *ev,
  173.         ODgxShape s)
  174. {
  175.    SOM_Resolve(this,ODShape,SetGXShape)
  176.     (this,ev,s);
  177. }
  178.  
  179.  
  180. /* public method: CopyQDRegion */
  181. ODRgnHandle   CopyQDRegion(Environment *ev)
  182. {
  183.    return SOM_Resolve(this,ODShape,CopyQDRegion)
  184.     (this,ev);
  185. }
  186.  
  187.  
  188.  
  189. };   /* ODShape */
  190.  
  191.  
  192.  
  193. #endif       /* SOM_ODShape_xh */
  194.